=========================================================================== BBS: The Abacus * HST/DS * Potterville, MI Date: 06-03-93 (21:38) Number: 100 From: VICTOR YIU Refer#: NONE To: ALL Recvd: NO Subj: FilterHigh 2.0 (2/4) Conf: (35) Quick Basi --------------------------------------------------------------------------- FH.BAS (demonstration and testing program) '______O_/__________________| SNIP |__________________\_O______ ' O \ | HERE | / O 'This file created by PostIt! v6.1. '>>> Start of page 1. ' FilterHigh 2.0 ' ~~~~~~~~~~~~~~ ' Ultra-quick filtering routine, written in assembly. ' ' 1.0 John Gallas Original release ' 2.0 Victor Yiu ASM Version -- FAST! ' ' Testing shows: PC/4.77MHz --> 6.2 times faster! ' 486DX/34MHz --> 2.1 times faster! ' DECLARE SUB FilterHighASM (BYVAL Segm%, BYVAL Offst%, BYVAL Leng%) DECLARE SUB FilterHigh (Dat$) ' call this... DECLARE SUB OldFilterHigh (Text$) ' these two are used for DECLARE FUNCTION RandomGen$ (Num%) ' demonstration purposes only DEFINT A-Z ' **** COMPILE BEFORE RUNNING TEST for accuracy CONST TestLen = 4096 PRINT : PRINT "Testing... please wait..." A$ = RandomGen(TestLen) T! = TIMER FOR X = 1 TO 400: B$ = A$: FilterHigh B$: NEXT T! = TIMER - T! A$ = RandomGen(TestLen) O! = TIMER FOR X = 1 TO 100: B$ = A$: OldFilterHigh A$: NEXT O! = TIMER - O! T! = 400 / T! * TestLen O! = 100 / O! * TestLen PRINT PRINT USING "ASM: #,###,### bytes"; T! PRINT USING "BAS: #,###,### bytes"; O! PRINT USING "... in other words.... ##.# times faster_!"; T! / O! SUB FilterHigh (Dat$) IF LEN(Dat$) = 0 THEN EXIT SUB ' QB version FilterHighASM VARSEG(Dat$), SADD(Dat$), LEN(Dat$) ' VBDOS/PDS version 'FilterHighASM SSEG(Dat$), SADD(Dat$), LEN(Dat$) END SUB SUB OldFilterHigh (Text$) STATIC IF NOT Init THEN DIM Table(0 TO 255) Table(128) = ASC("C"): Table(129) = ASC("u"): Table(130) = ASC("e") Table(131) = ASC("a"): Table(132) = ASC("a"): Table(133) = ASC("a") Table(134) = ASC("a"): Table(135) = ASC("c"): Table(136) = ASC("e") Table(137) = ASC("e"): Table(138) = ASC("e"): Table(139) = ASC("i") Table(140) = ASC("i"): Table(141) = ASC("i"): Table(142) = ASC("A") '>>> Continued on page 2 --- Blue Wave/RA v2.12 [NR] * Origin: Hard Disc Cafe | Houston Texas | (713) 589-2690 | (1:106/30.0) SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1 SEEN-BY: 153/752 154/40 77 157/110 159/100 125 430 575 950 203/23 209/209 SEEN-BY: 261/1023 280/1 390/1 396/1 15 397/2 2230/100 2440/5 3603/20